home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CUCD / Programming / OUI / rcs / slider.cc < prev    next >
Encoding:
C/C++ Source or Header  |  1998-04-08  |  2.8 KB  |  134 lines

  1. head    1.2;
  2. access;
  3. symbols;
  4. locks
  5.     dlorre:1.2; strict;
  6. comment    @// @;
  7.  
  8.  
  9. 1.2
  10. date    97.07.14.04.23.37;    author dlorre;    state Exp;
  11. branches;
  12. next    1.1;
  13.  
  14. 1.1
  15. date    96.08.22.02.05.10;    author dlorre;    state Exp;
  16. branches;
  17. next    ;
  18.  
  19.  
  20. desc
  21. @Oui.lib -- Object User Interface
  22. Projet créé en 1994
  23. Auteur: Dominique Lorre
  24. @
  25.  
  26.  
  27. 1.2
  28. log
  29. @*** empty log message ***
  30. @
  31. text
  32. @// $Id$
  33.  
  34. #include <libraries/gadtools.h>
  35. #include <intuition/gadgetclass.h>
  36. #include "gadgets/slider.h"
  37. #include "gadgetlist.h"
  38. #include <proto/gadtools.h>
  39.  
  40. // ========================================================================
  41. // ==========================  SLIDER CLASS ===============================
  42. // ========================================================================
  43.  
  44.  
  45. slider::slider(gadgetlist *gl,
  46.                void (window::*func)(gadget *, unsigned long, unsigned short),
  47.                long min, long max, long level,
  48.                long freedom,
  49.                const char *text,
  50.                const char *lformat,
  51.                unsigned short mlen,
  52.                long tplace,
  53.                long lplace,
  54.                long (*fdisp)(Gadget *, unsigned short)) : gadget(gl, func)
  55. {
  56.    gl->ng->ng_GadgetText = (UBYTE *)text ;
  57.    underkey(text) ;
  58.    gl->ng->ng_Flags = tplace ;
  59.    vmin = min ;
  60.    vmax = max ;
  61.    gad = gl->gad = CreateGadget(SLIDER_KIND, gl->gad, gl->ng,
  62.             GTSL_Min,           min,
  63.             GTSL_Max,           max,
  64.             GTSL_Level,         level,
  65.             GTSL_LevelFormat,   lformat,
  66.             GTSL_MaxLevelLen,   mlen,
  67.             GTSL_LevelPlace,    lplace,
  68.             GTSL_DispFunc,      fdisp,
  69.             PGA_Freedom,        freedom,
  70.             GT_Underscore,  '_',
  71.             TAG_END) ;
  72. }
  73.  
  74. void slider::set(long level, long min, long max)
  75. {
  76.     vmin = min ;
  77.     vmax = max ;
  78.     GT_SetGadgetAttrs(gad, w, NULL,
  79.         (min != -1)?GTSL_Min:TAG_IGNORE, min,
  80.         (max != -1)?GTSL_Max:TAG_IGNORE, max,
  81.         (level != -1)?GTSL_Level:TAG_IGNORE, level,
  82.         TAG_DONE) ;
  83.  
  84. }
  85.  
  86. void slider::action(unsigned long classe, unsigned short code)
  87. {
  88.     cursel = code ;
  89.     gadget::action(classe, code) ;
  90. }
  91.  
  92. void slider::keystroke(BOOL shifted)
  93. {
  94.     if (shifted) {
  95.         if (cursel > vmin)
  96.             cursel-- ;
  97.     }
  98.     else {
  99.         if (cursel < vmax)
  100.             cursel++ ;
  101.     }
  102.     gadget::action(NULL, cursel) ;
  103.     GT_SetGadgetAttrs(gad, w, NULL, GTSL_Level, cursel, TAG_DONE) ;
  104. }
  105.  
  106. @
  107.  
  108.  
  109. 1.1
  110. log
  111. @Initial revision
  112. @
  113. text
  114. @d1 2
  115. d7 1
  116. a7 9
  117.  
  118. extern "C" {
  119. extern struct Library *GadToolsBase ;
  120. struct Gadget *CreateGadget( unsigned long kind, struct Gadget *gad,
  121.         struct NewGadget *ng, Tag tag1, ... );
  122. void GT_SetGadgetAttrs( struct Gadget *gad, struct Window *win,
  123.         struct Requester *req, Tag tag1, ... );
  124. #include <pragmas/gadtools_pragmas.h>
  125. }
  126. d18 2
  127. a19 2
  128.                STRPTR text,
  129.                STRPTR lformat,
  130. d25 1
  131. a25 1
  132.    gl->ng->ng_GadgetText = text ;
  133. @
  134.